package br.unicamp.ic.sgct.server.dominio.entidades;



import javax.persistence.Entity;
import javax.persistence.Table;

import br.unicamp.ic.sgct.client.dominio.to.AutorTO;
import br.unicamp.ic.sgct.client.dominio.to.ParticipanteTO;

import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;





@Entity(name="Participante")
@Table(name="T_PARTICIPANTE")
@NamedQueries({
    @NamedQuery(name = Participante.findByIdPessoaAndIdConferencia , query = "SELECT  entity  FROM Participante entity where  entity.pessoa.idPessoa=?1 and entity.conferencia.id=?2"),
    @NamedQuery(name = Participante.findByIdConferencia , query = "SELECT  entity  FROM Participante entity where  entity.conferencia.id=?1")
})
@DiscriminatorColumn(name="type_participante", discriminatorType=DiscriminatorType.STRING,length=20)
@DiscriminatorValue(value="participante")
public class Participante extends Autor {

    public static final String findByIdPessoaAndIdConferencia = "Participante.findByIdPessoaAndIdConferencia";
    public static final String findByIdConferencia = "Participante.findByIdConferencia";

    public Participante(){
        super();
    }

    public Participante(ParticipanteTO to){
        super(to);
    }


	@Override
	public AutorTO getAutorTOEspecifico() {
		ParticipanteTO to = new ParticipanteTO();
		super.populaTO(to);
		return to;
	}

	

	
	public static Participante gerar(AutorTO to){
            Participante participante = new Participante();
            Autor.gerar(to, participante);
            return participante;
        }
	
}
